<?xml version="1.0"?>
<component name="org.nuxeo.ecm.document.pageproviders.override">

  <require>org.nuxeo.ecm.document.pageproviders</require>

  <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <coreQueryPageProvider name="document_content">
      <searchDocumentType>AdvancedSearch</searchDocumentType>
      <whereClause>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="fulltext_all" schema="advanced_search"/>
        </predicate>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="advanced_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:modified">
          <field name="modified_min" schema="advanced_search"/>
          <field name="modified_max" schema="advanced_search"/>
        </predicate>
        <fixedPart>
          ecm:parentId = ? AND ecm:isVersion = 0 AND
          ecm:mixinType != 'HiddenInNavigation' AND ecm:isTrashed = 0
        </fixedPart>
      </whereClause>
      <sort ascending="true" column="dc:title"/>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="advanced_document_content">
      <trackUsage>true</trackUsage>
      <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      <searchDocumentType>AdvancedContent</searchDocumentType>
      <whereClause>
        <fixedPart>
          ecm:isVersion = 0 AND
          ecm:mixinType !=
          'HiddenInNavigation'
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="advanced_content"/>
        </predicate>
        <predicate operator="=" parameter="ecm:parentId">
          <field name="ecm_parentId" schema="advanced_content"/>
        </predicate>
        <predicate operator="=" parameter="ecm:isTrashed">
          <field name="ecm_trashed" schema="advanced_content"/>
        </predicate>
      </whereClause>
      <aggregates>
        <aggregate id="dc_last_contributor_agg" parameter="dc:lastContributor" type="terms">
          <field name="dc_last_contributor_agg" schema="advanced_content"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="dc_modified_agg" parameter="dc:modified" type="date_range">
          <field name="dc_modified_agg" schema="advanced_content"/>
          <properties>
            <property name="format">"dd-MM-yyyy"</property>
          </properties>
          <dateRanges>
            <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
            <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
            <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
            <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
            <dateRange key="priorToLastYear" toDate="now-1y"/>
          </dateRanges>
        </aggregate>
      </aggregates>
      <sort ascending="false" column="dc:modified"/>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="document_trash_content">
      <searchDocumentType>AdvancedSearch</searchDocumentType>
      <whereClause>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="fulltext_all" schema="advanced_search"/>
        </predicate>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="advanced_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:modified">
          <field name="modified_min" schema="advanced_search"/>
          <field name="modified_max" schema="advanced_search"/>
        </predicate>
        <fixedPart>
          ecm:parentId = ? AND ecm:isVersion = 0 AND
          ecm:mixinType !=
          'HiddenInNavigation' AND ecm:isTrashed = 1
        </fixedPart>
      </whereClause>
      <sort ascending="true" column="dc:title"/>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="section_content">
      <searchDocumentType>AdvancedSearch</searchDocumentType>
      <whereClause>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="fulltext_all" schema="advanced_search"/>
        </predicate>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="advanced_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:modified">
          <field name="modified_min" schema="advanced_search"/>
          <field name="modified_max" schema="advanced_search"/>
        </predicate>
        <fixedPart>
          ecm:parentId = ? AND ecm:isVersion = 0 AND
          ecm:mixinType !=
          'HiddenInNavigation' AND ecm:isTrashed = 0
        </fixedPart>
      </whereClause>
      <sort ascending="true" column="dc:title"/>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="orderable_document_content">
      <searchDocumentType>AdvancedSearch</searchDocumentType>
      <whereClause>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="fulltext_all" schema="advanced_search"/>
        </predicate>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="advanced_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:modified">
          <field name="modified_min" schema="advanced_search"/>
          <field name="modified_max" schema="advanced_search"/>
        </predicate>
        <fixedPart>
          ecm:parentId = ? AND ecm:isVersion = 0 AND
          ecm:mixinType !=
          'HiddenInNavigation' AND ecm:isTrashed = 0
        </fixedPart>
      </whereClause>
      <sort ascending="true" column="ecm:pos"/>
      <sortable>false</sortable>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

  </extension>

</component>
